package com.example.education.service;

import com.example.education.exception.ParamException;
import com.example.education.model.Evaluate;

import java.util.List;

/**
 * 提供对教学资源的评价，删除评价，精选评价和查询评价的接口。
 */
public interface EvaluateService {

    /**
     * 新增评论
     * @param evaluate
     * @return
     */
    boolean insertEvaluate(Evaluate evaluate) throws ParamException;

    /**
     * 点赞评价
     * @param evaluateId
     * @return
     */
    boolean likeEvaluate(Integer evaluateId) throws ParamException;

    /**
     * 删除评论
     * @param evaluateId
     * @return
     */
    boolean deleteEvaluate(Integer evaluateId) throws ParamException;

    /**
     * 精选评论
     * @param evaluateId
     * @return
     */
    boolean topEvaluate(Integer evaluateId) throws ParamException;

    /**
     * 取消精选
     * @param evaluateId
     * @return
     */
    boolean unTopEvaluate(Integer evaluateId) throws ParamException;

    /**
     * 根据编号查评论
     * @param evaluateId
     * @return
     */
    Evaluate getEvaluateById(Integer evaluateId) throws ParamException;

    /**
     * 根据课程查询评价
     * @param courseId
     * @return
     */
    List<Evaluate> getEvaluateByCourseId(Integer courseId) throws ParamException;

    /**
     * 获取所有
     * @return
     */
    List<Evaluate> getAll(Integer page,Integer limit) throws ParamException;

    int getAllCount();
}
